$(function () {
    //1.变量抽取
    var ts_datagrid = $("#ts_datagrid");
    var ts_dialog = $("#ts_dialog");
    var ts_form = $("#ts_form");

    ts_datagrid.datagrid({
        fit: true,
        url: '/insurance/query.do?state=3',
        columns: [[
            {field: 'id', title: '保单ID', hidden: true},
            {field: 'sn', title: '保单编号', width: 200},
            {
                field: 'customer', title: '投保人', width: 200, formatter: function (value) {
                    return value ? value.name : '';
                }
            },
            {field: 'applicationDate', title: '申请日期', width: 200},
            {field: 'beginDate', title: '核保日期', width: 200, sortable: true},
            {field: 'endDate', title: '保险截止日', width: 200},
            {field: 'burningTime', title: '保险时长(/年)', width: 200},
            {
                field: 'sale', title: '业务员', width: 200, formatter: function (value) {
                    console.log(value);
                    return value ? value.username : '';
                }
            },
            {
                field: 'audit', title: '审核人', width: 200, formatter: function (value) {
                    return value ? value.username : '';
                }
            },
            {field: 'totalAmount', title: '投保总金额', width: 200},
            {
                field: 'state', title: '状态', width: 200, formatter: function (value) {
                    console.log(value)
                    if (value == 1) {
                        return '<p>暂存单</p>>';
                    } else if (value == 2) {
                        return '<p>批改单</p>';
                    } else if (value == 3) {
                        return '<p>待审核单</p>';
                    } else if (value == 4) {
                        return '<p>审核单</p>'
                    }
                }
            },
            {
                field: 'id', title: '查看商品明细', width: 200, formatter: function (row) {
                    return "<a href='javascript:a()'>查看保单明细</a>";
                }
            }
        ]],
        toolbar: '#tb',
        fitColumns: true,
        pagination: true,
        rownumbers: true,
        singleSelect: true,
        pagePosition: 'bottom'
    })
    ts_dialog.dialog({
        width: 300,
        height: 200,
        buttons: '#form_btn',
        closed: true,
        onClose: function () {
            ts_form.form('clear');
        }
    })

    //2.把方法统一放到一个对象中管理
    var methodObj = {
        no: function () {
            var row = ts_datagrid.datagrid('getSelected');
            if (!row) {
                $.messager.alert('温馨提示', '亲,请选择内容', 'warning');
                return;
            }
            $.messager.confirm('确认对话框', '您确定想退回该保单？', function (r) {
                if (r) {
                    $.post('/insurance/returnApplication.do', {id: row.id}, function (data) {
                        if (data.success) {
                            $.messager.alert('温馨提示', '操作成功!', 'info', function () {
                                methodObj.cancel();
                                ts_datagrid.datagrid('reload');
                            })
                        } else {
                            $.messager.alert('温馨提示', data.msg, 'warning');
                        }
                    })
                }
            });
        },
        ok: function () {
            var row = ts_datagrid.datagrid('getSelected');
            if (!row) {
                $.messager.alert('温馨提示', '亲,请选择内容', 'warning');
                return;
            }

            $.messager.confirm('确认对话框', '该审核保单确认通过？', function (r) {
                if (r) {
                    $.post('/insurance/passApplication.do', {id: row.id}, function (data) {
                        if (data.success) {
                            $.messager.alert('温馨提示', '操作成功!', 'info', function () {
                                methodObj.cancel();
                                ts_datagrid.datagrid('reload');
                            })
                        } else {
                            $.messager.alert('温馨提示', data.msg, 'warning');
                        }
                    })
                }
            });
        },
        reload: function () {
            ts_datagrid.datagrid('reload');
        },
        save: function () {
            ts_form.form('submit', {
                url: '/insurance/saveOrUpdate.do',
                onSubmit: function (param) {
                    //获取保单下拉框选中的值
                    var ids = $("#role_combobox").combobox('getValues');
                    for (var i = 0; i < ids.length; i++) {
                        //提交额外的参数
                        param['roles[' + i + '].id'] = ids[i];
                    }
                },
                success: function (data) {
                    data = $.parseJSON(data);
                    if (data.success) {
                        $.messager.alert('温馨提示', '保存成功!', 'info', function () {
                            methodObj.cancel();
                            ts_datagrid.datagrid('reload');
                        })
                    } else {
                        $.messager.alert('温馨提示', data.msg, 'warning')
                    }
                }
            })
        },
        cancel: function () {
            ts_dialog.dialog('close')
        },
        query: function () {
            var customerNameOrTel = $("[name=customerNameOrTel]").val();
            var querySn = $("[name=querySn]").val();
            ts_datagrid.datagrid('load', {
                customerNameOrTel: customerNameOrTel,
                querySn: querySn
            })
        },

    }

    //3.给按钮统一绑定点击事件
    $("a[data-cmd]").click(function () {
        //获取按钮的data-cmd属性值
        var methodName = $(this).data('cmd');
        methodObj[methodName]();
    })
})
